package com.xiaoxin.xinlikesystem.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiaoxin.xinlikesystem.model.entity.Blog;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoxin.xinlikesystem.model.entity.User;
import com.xiaoxin.xinlikesystem.model.vo.Blog.BlogVO;
import jakarta.servlet.http.HttpServletRequest;

import java.util.List;

/**
 * @author Xiaoxin
 * @description 针对表【blog(博客表)】的数据库操作Service
 * @createDate 2025-05-10 14:00:17
 */
public interface BlogService extends IService<Blog> {

    /**
     * 获取博客
     *
     * @param blogId  博客ID
     * @param request 请求
     * @return 博客内容
     */
    BlogVO getBlogVOById(long blogId, HttpServletRequest request);

    /**
     * 获取博客（包装类），如果已经登陆则获取当前用户是否已经点赞
     *
     * @param blog      文章
     * @param loginUser 登录用户
     * @return 返回博客包装类
     */
    BlogVO getBlogVO(Blog blog, User loginUser);


    /**
     * 按页获取博客（包装类）
     *
     * @param current  页码
     * @param pageSize 页大小
     * @return 返回博客页查询
     */
    Page<BlogVO> getBlogVOPage(long current, long pageSize, HttpServletRequest request);


}
